package com.weiqiao.mall.domain;

import lombok.Data;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * 商品表
 *
 * @author tiyer
 */
@Data
public class CommodityEntity {
    /**
     * 商品属性
     **/
    private String pro_id;//关联产品id
    private String pro_name;//关联产品名称
    private String pro_title;//关联产品副标题
    private int pro_type = 0;//商品类型(0实物商品 1虚拟商品)
    private String variety_id;//商品一级类别id
    private String variety_name;//商品一级类别名称
    private String second_variety_id;//二级分类id
    private int company_id;//公司id
    private String mall_id;//店铺ID(时间秒)
    private String commodity_id;//商品ID(时间秒)
    private String union_code;//商品编号
    private String name;//商品名称
    private double price;//专柜价格
    private double vip_price;//会员价格
    private int postState = 0;//邮费状态(0包邮 1不包邮)
    private double post_price;//包邮费用
    private String detail;//富文本，可以加载HTML 数据
    private int inventory;//库存
    private int state;//状态： 0：已上架  1：已下架  2.自定义上架时间
    private int deal_times = 0;//小程序交易次数
    private int app_times = 0;//app交易次数
    private int hasNotice = 0; // 是否设置详情公告 0: no 1:yes
    private int look_number = 0;//浏览量
    private String sharing_password;//口令
    private List<Specifications> specifications;//规格(后台添加的规格)
    private List<SpecificationDetails> specification_details; // 规格明细（规格的组合以及，不同组合的价钱）
    private double commission;//商品佣金总额
    private double share_save;//分享立省
    private int open_sale;//开启限购(0 默认未开启，1开启限购)
    private int open_sale_num;//每人限购多少件此活动商品
    private double consumeRebate;//消费返利
    private double promotionRebate;//推广返利
    private double up_promotionRebate;
    private int is_supplier;//0:自营商品  1:供应商商品
    private String supplier_id;//所属供应商id
    private String brand_id;//所属品牌id
    private Integer supplier_userid;//供应商对应用户id
    private String supplier_name;//供应商名称
    private int origin_tag;//商品标签（1品牌直供 2进口商直邮 3原产地采集 4积分兑换区）
    private double cost_price;//成本价格
    private Map<String, String> props;//商品参数，旧的，将要废弃
    private List<ProductParameterEntity> parameter; // 商品参数，取自商品参数表
    //手环商品使用
    private String model_type;//商品型号

    private int is_top = 0;//是否置顶
    private String top_time;//置顶时间
    //标签品牌
    private List<String> label_brand_ids;
    private String active_id;//活动id

    //显示用
    private String show_specifications;//规格(下单时选择的规格,显示用),字符串用;分隔(颜色/红色；尺码/M；型号/A)
    private int cmd_type;//商品类型(0普通商品 1限时抢购 2拼团抢购)
    private MarketActiveEntity marketActiveEntity;//活动实体
    private double spike_price;//秒杀价格
    private AreaCommodityEntity areaCommodityEntity; //专区商品实体(存储有关专区商品信息)


    private String anchor_id;//主播id(2019-07-27pengliwei 直播点播模块需要字段（前端显示用）)
    private double card_money;//优惠券金额(2019-07-27pengliwei 直播点播模块需要字段（前端显示用）)
    private String template_id;//关联的模板id

    private int comment_times = 0;//小程序评价次数
    private int app_comment = 0;//app评价次数
    private List<Comment> comments;//评论
    private String create_date;//创建时间

    private int num;// 小程序商城 下单
    private int comment_state = 0;// 评价状态 0 ：未评价   1：已评价

    private List<Link> link_url;// 商品详情链接
    private String cover_url;// 封面图
    private String parameter_url;// 商品参数图片
    private int delete_flag;// 是否删除(0未删除  1已删除)
    private String qrcode_url;// 商品小程序二维码
    private String vedio_url;// 主图视频
    private String cover_tag_img;// 封面角标图
    private String detail_tag_img;// 详情顶部图


    // 商品类型	0：普通商品 1：积分商品
    private int is_score_commodity;
    // 积分类型	0同等价格积分购买 1：指定积分购买
    private int score_type;
    // 指定积分购买	多少积分售卖
    private int sell_score;


    // 会员等级
    private List<String> grade_id_list = new ArrayList<>(); // 会员等级id集合。商品开启不同等级可见，当不为空时

    // 商品关联的货架id
    private List<String> shelf_id_list = new ArrayList<>();

    //预售字段
    private String listing_time;//上架时间

    private boolean advance_sale_check  = false;
    private int advance_sale_state;//0 不预售 1. 到发货时间后发货 2 付款成功后--发货
    private String advance_sale_time;//发货时间
    private int advance_sale_day;//付款后多少天

    private boolean home_purchase_restrictions_check  = false;
    private int home_purchase_restrictions_state;//0 不限购  1开启限购
    private int home_purchase_restrictions_count;//限购数量

    private int start_selling_count;//起售数量

    // 评论
    @Data
    public static class Link {
        private String type;//类型：图片  视频
        private String url;//评论人头像
    }

    // 商品规格
    @Data
    public static class Specifications {
        private String id;//规格id
        private String name;//规格名称
        private List<value> value_list;//规格值
        private int is_upload_url; // 是否允许上传图片, 0 允许 1 不允许

        // 规格值
        @Data
        public static class value {
            private String key; // 规格值id
            private String value; // 规格值
            private String url; // 上传的图片
        }
    }

    // 规格明细
    @Data
    public static class SpecificationDetails {
        // 一级规格id
        private String first_class_id;
        // 一级规格值
        private String first_class_value;
        // 一级规格图片
        private String first_class_url;
        // 二级规格id
        private String two_class_id;
        // 二级规格值
        private String two_class_value;
        // 二级规格图片
        private String two_class_url;
        // 三级规格id
        private String three_class_id;
        // 三级规格值
        private String three_class_value;
        // 三级规格图片
        private String three_class_url;
        // 会员价
        private double vip_price;
        // 成本价
        private double cost_price;
        // 库存
        private int inventory;
        // 规格编码
        private String union_code;
        // 活动价格 该规格对应活动商品的价格
        private double active_price;
        // 活动库存 该规格对应活动商品的库存
        private int active_inventory;
        // 专区价格 该规格对应专区商品的价格
        private double area_price;
        // 普通佣金
        private double commission;
    }
}
